using System;
using System.Data.Entity;
using Domain.Model.Affiliates;
using Domain.Model.Banks;
using Domain.Model.Employees;
using Domain.Model.Nomenclatures;
using Domain.Model.Orders;
using Domain.Model.Partners;
using Infrastructure.Data;

namespace Infrastructure.TestsCore.Fakes
{
    public class FakeMainModuleUnitOfWork : IMainModuleUnitOfWork
    {
        public IDbSet<Affiliate> Affiliates
        {
            get { throw new NotImplementedException(); }
        }

        public IDbSet<Bank> Banks
        {
            get { return _bank ?? (_bank = new FakeBanksDbSet()); }
        }
        private IDbSet<Bank> _bank;

        public IDbSet<Partner> Partners
        {
            get { return _partners ?? (_partners = new FakePartnersDbSet()); }
        }
        private IDbSet<Partner> _partners;

        public IDbSet<Employee> Employee
        {
            get { throw new NotImplementedException(); }
        }

        public IDbSet<Nomenclature> Nomenclatures
        {
            get { throw new NotImplementedException(); }
        }

        public IDbSet<Order> Orders
        {
            get { throw new NotImplementedException(); }
        }

        public int SaveChanges()
        {
            return 1;
        }
    }
}